package org.demo.szml.perssionservice.repository;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.demo.szml.perssionservice.repository.po.UserRolesPO;

/**
 * @description: 权限仓储接口
 * @date: 2025/6/16 13:52
 * @version: 1.0
 */
public interface IPermissionRepository {
    /** 绑定默认用户角色
     * @param userRolesPO 用户角色关系持久化类
     * @return 插入结果
     */
    int bindDefaultRole(UserRolesPO userRolesPO);

    /** 获取操作者管理的用户ID列表 这里最少也会返回他自己
     * @param operatorId 操作者ID
     * @param page 页码
     * @param size 每页大小
     * @return 用户ID列表
     */
    Page<Long> getAttributeUsers(Long operatorId, Integer page, Integer size);

    /** 获取指定操作者对指定用户的权限关系是否合法
     * @param operatorId 操作者ID
     * @param userId 用户ID
     * @return 验证信息 不为空说明验证有误
     */
    String getAttributeRelation(Long operatorId, Long userId);

    /** 重新绑定用户角色
     * @param operatorId 操作者ID
     * @param userId 用户ID
     * @param roleId 角色ID
     * @return 绑定结果
     */
    int rebindRole(Long operatorId,Long userId, Integer roleId);
}
